/**
 @Name：layuiAdmin 系统管理->学期管理
 @Author：star1029
 @Site：http://www.layui.com/admin/
 @License：LPPL
 */
layui.define(['table', 'form'], function(exports){
    var $ = layui.$
        ,admin = layui.admin
        ,view = layui.view
        ,table = layui.table
        ,form = layui.form;

    // 学期管理表格渲染
    table.render({
        elem: '#LAY-term-manage'
        ,url: '/getAllTermsPageServlet' // 数据接口
        ,cols: [[
            {type: 'checkbox', fixed: 'left'}
            ,{hide: 'termId', width: 100, title: 'ID', sort: true}
            ,{field: 'termName', title: '学期名称', minWidth: 180}
            ,{field: 'termFlag', title: '状态', width: 120}
            ,{field: 'termOrder', title: '排序', width: 100}
            ,{field: 'termStmp', title: '时间戳', width: 200}
            ,{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#table-system-term'}
        ]]
        ,page: true
        ,limit: 10
        ,height: 'full-320'
        ,text: '对不起，加载出现异常！'
    });

    // 监听工具条事件
    table.on('tool(LAY-term-manage)', function(obj){
        var data = obj.data;
        if(obj.event === 'del'){ // 删除操作
            layer.confirm('真的要删除这个学期么？', function(index){
                $.ajax({
                    type:'POST'
                    ,url:'/deleteTermServlet'
                    ,data:{"cid":data.termId}
                    ,success:function(data){
                        if(data=="Ok"){
                            layer.alert('删除成功',{icon:6});
                            obj.del();
                        }else{
                            layer.alert(data,{title:'删除失败'});
                        }
                    }
                });
                layui.table.reload('LAY-term-manage'); // 重载表格

            });
        } else if(obj.event === 'edit'){ // 编辑操作
            admin.popup({
                title: '编辑学期'
                ,area: ['500px', '350px']
                ,id: 'LAY-popup-term-edit'
                ,success: function(layero, index){
                    view(this.id).render('term/update', data).done(function(){
                        form.render(null, 'layuiadmin-form-term');

                        // 监听提交
                        form.on('submit(LAY-modify)', function(data){
                            var field = data.field; // 获取提交的字段
                            // 提交 Ajax 成功后，关闭当前弹层并重载表格
                            $.ajax({
                                type : 'POST',
                                url : '/updateTermServlet',
                                data : field,
                                success : function(data) {
                                    if (data == "Ok") {
                                        layer.alert("修改成功", {
                                            icon : 6
                                        });
                                    } else {
                                        layer.alert(data, {
                                            title : '修改失败'
                                        });
                                    }
                                }
                            });
                            layui.table.reload('LAY-term-manage'); // 重载表格
                            layer.close(index); // 关闭弹层
                        });
                    });
                }
            });
        }
    });

    form.render(null, 'layadmin-userfront-formlist');

    // 监听搜索事件
    form.on('submit(LAY-term-front-search)', function(data){
        var field = data.field;
        // 执行表格重载
        table.reload('LAY-term-manage', {
            page:{
                curr:1
            }
            ,where: field
            ,method:'post'
        });
    });

    // 定义操作事件
    var active = {
        batchdel: function(){ // 批量删除
            var checkStatus = table.checkStatus('LAY-term-manage')
                ,checkData = checkStatus.data; // 得到选中的数据
            if(checkData.length === 0){
                return layer.msg('请选择数据');
            }

            layer.prompt({
                formType: 1
                ,title: '敏感操作，请验证口令'
            }, function(value, index){
                layer.close(index);

                layer.confirm('确定删除选中的学期吗？', function(index) {
                    // 执行删除操作后重载表格
                    table.reload('LAY-term-manage');
                    layer.msg('已删除');
                });
            });
        }
        ,add: function(){ // 添加学期
            admin.popup({
                title: '添加学期'
                ,area: ['500px', '350px']
                ,id: 'LAY-popup-term-add'
                ,success: function(layero, index){
                    view(this.id).render('term/add').done(function(){
                        form.render(null, 'layuiadmin-form-term');

                        // 监听提交
                        form.on('submit(LAY-term-add)', function(data){
                            var field = data.field; // 获取提交的字段
                            // 提交 Ajax 成功后，关闭当前弹层并重载表格
                            $.ajax({
                                type : 'POST',
                                url : '/addTermServlet',
                                data : field,
                                success : function(data) {
                                    if (data == "Ok") {
                                        layer.alert("增加成功", {
                                            icon : 6
                                        });
                                    } else {
                                        layer.alert(data, {
                                            title : '添加失败'
                                        });
                                    }
                                }
                            });
                            layui.table.reload('LAY-term-manage'); // 重载表格
                            layer.close(index); // 关闭弹层
                        });
                    });
                }
            });
        }
    };

    // 绑定按钮事件
    $('.layui-btn.layuiadmin-btn-useradmin').on('click', function(){
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });

    exports('term', {});
});